

/**
 * 文件节点接口定义
 * 对应 Rust 后端的 FileNode 结构
 */
export interface FileNode {
    /** 文件或目录名称 */
    name: string;
    /** 文件或目录的完整路径 */
    path: string;
    /** 是否为目录 */
    is_dir: boolean;
    /** 子节点列表，仅目录有此项 */
    children?: FileNode[];
}

/**
 * 文件扫描器组件的事件载荷
 */
export interface FileScannerChangePayload {
    /** 选择的目录名称 */
    name: string;
    /** 文件树结构，可能为 null */
    tree: FileNode | null;
}

/**
 * 文件扫描器组件的事件定义
 */
export interface FileScannerEmits {
    (e: 'change', payload: FileScannerChangePayload): void;
}

/**
 * Mod 信息结构
 */
export interface ModInfo {
    name: string;
    author: string;
    savepath: string;
}

/**
 * 资源项类型
 */
export type ResourceItemType = 'ModInfo' | 'ItemStrings'|'TextFile'|'ItemLights';

import { ResFileInfo } from "./resFileInfo";
/**
 * 资源项接口
 */
export interface ResourceItem {
    /** 资源项名称 */
    name?: string;
    /** 资源项类型 */
    type?: ResourceItemType;
    /** 节点左侧标签显示（例如 [底材] / [符文]） */
    prefixLabel?: string;
    /** 节点右侧标签显示（例如 [已读取][作者：xxx]） */
    affixLabel?: string;
    /** 这个资源包含的文件字典 */
    files?: {[key:string]:ResFileInfo|undefined};
    modName?:string;
}



/**
 * Mod 资源表
 */
export interface ModResourceTable {
    /** Mod 名称 */
    modName: string;
    /** 是否为目录型 Mod */
    isDirectoryMod: boolean;
    /** 资源项列表 */
    resources: ResourceItem[];
    /** 是否展开 */
    expanded?: boolean;
    /** 节点左侧标签显示（例如 [底材] / [符文]） */
    prefixLabel?: string;
    /** 节点右侧标签显示（例如 [已读取][作者：xxx]） */
    affixLabel?: string;
    /** MPQ 条目是否存在（新增属性） */
    mpqEntryExist?: boolean;
}

/**
 * 资源表数据
 */
export interface ResourceTableData {
    /** Mod 资源表列表 */
    mods: ModResourceTable[];
}

export interface D2ItemStringToDisplay{

    /**是否在游戏内显示 */
    isShow: boolean;
    id: number;
    Key: string;
    /** 中文（简体） */
    zhCN: string;
    /** 中文（繁体） */
    zhTW: string; 
    /** 英文（美国） */
    enUS: string;
    /** 物品描述 */
    desc?: D2ItemDesc;
}

export interface D2ItemDesc{
    /** 物品名称 */
    name: string;
    /** 物品详细描述 */
    details: string[];
    /** 物品等级 */
    level: number;
    /** 物品图片名称 */
    imageName: string;
    /** 主分类 */
    mainCateg: string;
    /** 子分类 */
    subCateg: string;
    /** 物品唯一标识符 */
    Key: string;
}

//这是后台配置文件的接口定义
export interface AppTauriConfig{
    d2rModsPath?:string;
    supportedMods?:string[];
    customFiles?:Record<string,Record<string,string>>;
}

export interface ItemModifiedString{
    zhCN?:string,
    zhTW?:string,
    enUS?:string,
}

export interface UserModifiedData{
    modName:string,
    ignoreItemKeys?:string[],
    modifiedItemStrings?:Record<string,ItemModifiedString>,
}